Methods, Systems, and Products for Discovering Electronic Devices

ABSTRACT

Methods, systems, and products self-identify an electronic device to a remote control. The remote control queries the electronic device, and the electronic device sends a response. A collision avoidance mechanism allows difference devices to respond to the remote control.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.14/934,178 filed Nov. 6, 2015 and since issued as U.S. Pat. No. ______,which is a continuation of U.S. application Ser. No. 14/053,627 filedOct. 15, 2013 and since issued as U.S. Pat. No. 9,208,363, which is acontinuation of U.S. application Ser. No. 13/359,549 filed Jan. 27, 2012and since issued as U.S. Pat. No. 8,587,412, which is a continuation ofU.S. application Ser. No. 11/893,318 filed Aug. 15, 2007 and sinceissued as U.S. Pat. No. 8,130,079, with all applications incorporatedherein by reference in their entireties.

BACKGROUND

Exemplary embodiments generally relate to communications and totelevision and, more particularly, to receivers, to transmitters, and toremote controls.

Remote controls can be improved. Remote controls are ubiquitous and usedto remotely control almost every type of electronic device. A so-calledautomatically-configurable or “universal” remote control has beenproposed to remotely control multiple electronic devices, thuseliminating a separate remote for each device. A problem with theseuniversal remote controls, however, is a polling mechanism to identifycontrollable electronic devices. When a remote control requestsself-identification from electronic devices, responses from thosecontrollable electronic devices may collide at the remote control. Mostremote controls can only receive and process one response at a time.When two or more responses are nearly simultaneously received, theremote control may only process one of those responses. The otherresponse may be ignored.

SUMMARY

The exemplary embodiments provide methods, systems, and products fordiscovering and/or identifying controllable electronic devices.Exemplary embodiments describe a collision avoidance mechanism thathelps reduce or prevent simultaneous receipt of multiple automaticconfiguration responses from electronic devices. A method, for example,receives a query at a remote control interface. A response to the queryis determined. A random response interval of time is determinedaccording to a collision avoidance mechanism. When the random responseinterval of time expires, then the response to the query is sent.

More exemplary embodiments include a system for discovering anelectronic device. The system includes means for receiving a query at aremote control interface. Means are also included for determining aresponse to the query. Means are included for determining a randomresponse interval of time according to a collision avoidance mechanism.When the random response interval of time has expired, then means areincluded for sending the response to the query.

Other exemplary embodiments describe a computer program product fordiscovering electronic devices. A query is received at a remote controlinterface. A response to the query is determined. A random responseinterval of time is determined according to a collision avoidancemechanism. When the random response interval of time expires, then theresponse to the query is sent.

Other systems, methods, and/or computer program products according tothe exemplary embodiments will be or become apparent to one withordinary skill in the art upon review of the following drawings anddetailed description. It is intended that all such additional systems,methods, and/or computer program products be included within thisdescription, be within the scope of the claims, and be protected by theaccompanying claims.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

These and other features, aspects, and advantages of the exemplaryembodiments are better understood when the following DetailedDescription is read with reference to the accompanying drawings,wherein:

FIG. 1 is a schematic illustrating an operating environment in whichexemplary embodiments may be implemented;

FIG. 2 is a more detailed schematic illustrating communication between aremote control and electronic devices, according to more exemplaryembodiments;

FIG. 3 is a schematic illustrating a random number generator, accordingto more exemplary embodiments;

FIGS. 4 and 5 are more schematics illustrating automatic discovery andconfiguration of electronic devices, according to more exemplaryembodiments;

FIGS. 6 and 7 are more schematics illustrating automatic configurationof electronic devices, according to more exemplary embodiments;

FIG. 8 is a timing diagram for another process for controllingelectronic devices, according to even more exemplary embodiments;

FIG. 9 is a schematic illustrating coordination of random delays amongstthe electronic devices 22, according to even more exemplary embodiments;

FIG. 10 is a schematic further illustrating a remote control, accordingto more exemplary embodiments;

FIG. 11 depicts other possible operating environments for additionalaspects of the exemplary embodiments; and

FIGS. 12-15 are flowcharts illustrating methods of discovering anelectronic device, according to even more exemplary embodiments.

DETAILED DESCRIPTION

The exemplary embodiments will now be described more fully hereinafterwith reference to the accompanying drawings. The exemplary embodimentsmay, however, be embodied in many different forms and should not beconstrued as limited to the embodiments set forth herein. Theseembodiments are provided so that this disclosure will be thorough andcomplete and will fully convey the exemplary embodiments to those ofordinary skill in the art. Moreover, all statements herein recitingembodiments, as well as specific examples thereof, are intended toencompass both structural and functional equivalents thereof.Additionally, it is intended that such equivalents include bothcurrently known equivalents as well as equivalents developed in thefuture (i.e., any elements developed that perform the same function,regardless of structure).

Thus, for example, it will be appreciated by those of ordinary skill inthe art that the diagrams, schematics, illustrations, and the likerepresent conceptual views or processes illustrating the exemplaryembodiments. The functions of the various elements shown in the figuresmay be provided through the use of dedicated hardware as well ashardware capable of executing associated software. Those of ordinaryskill in the art further understand that the exemplary hardware,software, processes, methods, and/or operating systems described hereinare for illustrative purposes and, thus, are not intended to be limitedto any particular named manufacturer.

As used herein, the singular forms “a,” “an,” and “the” are intended toinclude the plural forms as well, unless expressly stated otherwise. Itwill be further understood that the terms “includes,” “comprises,”“including,” and/or “comprising,” when used in this specification,specify the presence of stated features, integers, steps, operations,elements, and/or components, but do not preclude the presence oraddition of one or more other features, integers, steps, operations,elements, components, and/or groups thereof. It will be understood thatwhen an element is referred to as being “connected” or “coupled” toanother element, it can be directly connected or coupled to the otherelement or intervening elements may be present. Furthermore, “connected”or “coupled” as used herein may include wirelessly connected or coupled.As used herein, the term “and/or” includes any and all combinations ofone or more of the associated listed items.

It will also be understood that, although the terms first, second, etc.may be used herein to describe various elements, these elements shouldnot be limited by these terms. These terms are only used to distinguishone element from another. For example, a first device could be termed asecond device, and, similarly, a second device could be termed a firstdevice without departing from the teachings of the disclosure.

FIG. 1 is a simplified schematic illustrating an environment in whichexemplary embodiments may be implemented. A remote control 20communicates with one or more electronic devices 22 via a communicationsnetwork 24. Although the electronic devices 22 are generically shown,the electronic devices 22 may include any television, video monitor,computer, radio or satellite receiver, music player, digital recorder,or any other device. The remote control 20 may be a universal remotecontrol that controls the operation of one, some, or all of theelectronic devices 22. The electronic devices 22, for example, may becomponents of a user's entertainment system, and the remote control 20universally controls those components. The remote control 20 may includetransceiver circuitry 26 that sends a query 28 to the electronic devices22. The query 28 communicates via the communications network 24, suchthat the query 24 instructs each electronic device 22 to respond and toidentify itself. The query 28, for example, may be a “who are you?”query that solicits each electronic device 22 for identification and/orcontrol information. FIG. 1 illustrates the query 28 being broadcastedto each electronic device 22, yet the query 28 may be coded, encrypted,or otherwise formatted for a single electronic device 22. The query 28may be sent via any means, such as a BLUETOOTH® signal and/or aninfrared “line of sight” signal.

However the query 28 is sent, the electronic devices 22 respond. Wheneach electronic device 22 receives the query 28, each electronic device22 sends a response 30 to the query 28, according to exemplaryembodiments. FIG. 1, for simplicity, only illustrates a television 32sending the response 30. The reader may understand, however, that someor all of the electronic devices 22 may send responses to the query 28.The response 30 sent from the television 32 may include codes or otherinformation that describe or identify the manufacturer of the television32, its serial number, its model number, its componentry, and/or itscode sets for accessing functions and features via the remote control20, as is known to those of ordinary skill in the art. Each electronicdevice 22, in fact, may respond to the query 28 and self-identify itsmanufacturer, serial number, model number, componentry, and/or codesets. The remote control 20 may then use this self-identificationinformation to configure itself to remotely control each electronicdevice 22, again as is known to those of ordinary skill in the art.

The television 32, however, may invoke a collision avoidance mechanism34. According to exemplary embodiments, the collision avoidancemechanism 34 helps reduce or prevent simultaneous receipt of multipleself-identification responses from the electronic devices 22. As FIG. 1illustrates, the remote control 20 may only include the singletransceiver 26. That is, the receiver circuitry of the transceiver 26may only receive and process one response at a time. If the remotecontrol 20 had multiple receivers, the remote control 20 may be capableof receiving multiple, simultaneous responses from the electronicdevices 22. Yet some or most remote controls (like the remote control20) only have a single receiver to reduce cost and complexity. When thereceiver is receiving and/or processing a response, other responses maybe ignored until the transceiver 26 is again ready to receive andprocess another response.

The collision avoidance mechanism 34, then, helps reduce or preventsimultaneous receipt of multiple responses. Each of the electronicdevices 22 may include the collision avoidance mechanism 34. Thecollision avoidance mechanism 34 instructs each electronic device 22 toimplement a random response interval 36 of time when responding to thequery 28. As later paragraphs will explain, because the random responseinterval 36 of time is randomly determined, the random response interval36 of time is likely different for each electronic device 22. Eachelectronic device 22 delays sending a response to the query 28 for therandom response interval 36 of time. The television 32, for example,delays sending its response 30 according to the random response interval36 of time determined by its resident collision avoidance mechanism 34.Because each electronic device 22 implements a different random delay,this randomization creates a reduced chance of the remote control 20simultaneously receiving multiple responses to the query 28. Thecollision avoidance mechanism 34 helps prevent the remote control 20from ignoring simultaneously-received responses and, thus, failing toidentify a controllable device.

Some aspects of remote controls and their interfaces are known, so thisdisclosure will not greatly explain the known details. If the readerdesires more details, the reader is invited to consult the followingsources: U.S. Pat. No. 5,629,868 to Tessier, et al.; U.S. Pat. No.5,819,294 to Chambers; U.S. Pat. No. 5,909,183 to Borgstahl, et al.;U.S. Pat. No. 6,124,804 to Kitao, et al.; U.S. Pat. No. 6,157,319 toJohns, et al.; U.S. Pat. No. 6,160,491 to Kitao, et al.; U.S. Pat. No.6,225,938 to Hayes, et al.; U.S. Pat. No. 6,914,551 to Vidal; U.S. Pat.No. 7,027,881 to Yumoto, et al.; U.S. Pat. No. 7,046,161 to Hayes; U.S.Pat. No. 7,050,867 to Maymudes; U.S. Pat. No. 7,095,456 to Nakajima;U.S. Patent Application Publication 2004/0070491 to Huang, et al.; andU.S. Patent Application Publication 2006/0281477 to Downes.

Exemplary embodiments may be applied regardless of networkingenvironment. The communications network 24 may be a wireless networkutilizing any portion of the electromagnetic spectrum and any signalingstandard (such as the I.E.E.E. 802 family of standards, the BLUETOOTH®standard, the infrared portion, and/or the ISM band). The communicationsnetwork 24 may even utilize GSM/CDMA/TDMA or any cellular standard. Theremote control 20, however, may even interface with wired portions, suchas coaxial cables, copper wires, fiber optic lines, and/orhybrid-coaxial lines. The concepts described herein may be applied toany wireless/wireline communications network, regardless of physicalcomponentry, physical configuration, or communications standard(s).

FIG. 2 is a more detailed schematic illustrating communication betweenthe remote control 20 and the electronic devices 22, according to moreexemplary embodiments. Again, for simplicity, FIG. 2 only illustratesthe remote control 20 sending the query 28 to the television 32. Thoseskilled in the art should understand, though, that the remote control 20may send the query 28 to any, some, or all of the electronic devices 22illustrated in FIG. 1. The query 28 may include an instruction 50 forthe television 32 to respond and to self-identify. The television 32 hasa remote control interface (“RC Interface”) 52 that receives the query28 and other signals from the remote control 20. The remote controlinterface 52 may include a wireless transceiver 54, as is known. Whenthe remote control interface 52 receives the query 28, the collisionavoidance mechanism 34 may instruct a processor 56 (e.g., “μP”),application specific integrated circuit (ASIC), or other device toexecute a delay application 58 stored in memory 60. The delayapplication 58 is a set of processor-executable instructions that causethe processor 56 to calculate and to implement the random responseinterval 36 of time. When the random response interval 36 of time isdetermined, the processor 56 may invoke a timer 62 that counts downuntil the expiration of the random response interval 36 of time. Whenthe random response interval 36 of time expires, the processor 56instructs the remote control interface 52 to send the response 30 to thequery 28. The response 30 communicates to the remote control 20, and theremote control 20 may then configure itself to remotely control thetelevision 32, as is known.

FIG. 3 is a schematic illustrating a random number generator 70,according to more exemplary embodiments. Here, when the remote controlinterface 52 receives the query 28, the delay application 58 mayinstruct the processor 56 to call or invoke the random number generator70. The random number generator 70 may be software programming orcircuitry that determines a random number 72. The delay application 58may then instruct the processor 56 to retrieve a predetermined time 74from the memory 60. The predetermined time 74 represents any baseline ornominal delay. The predetermined time 74 may be any time fromnanoseconds to seconds to minutes. The predetermined time 74, forexample, may be 100 milliseconds, 200 milliseconds, or even an interval,window, or range of time from 100 milliseconds to 500 milliseconds. Thepredetermined time 74 may be established by the manufacturer of theelectronic device 22 (e.g., the television 32). The predetermined time74, however, may be a configurable parameter that is chosen or selectedduring a set-up or initialization procedure. A user of the television 32and/or the remote control 20, for example, may select the predeterminedtime 74. The remote control 20 may even assign a unique or differentpredetermined time 74 to each electronic device 22. However thepredetermined time 74 is assigned, the processor 56 may then calculatethe random response interval 36 of time according to the formula:

random response interval of time t=(predetermined time)×(random number)

Suppose, for example, that the predetermined time 74 is one (1.0)second. When the random number 72 is 0.627, the processor 56 maycalculate the random response interval 36 of time as:

random response interval of time t=(1.0 second)×(0.627)=0.627 seconds.

The random response interval 36 of time is then implemented. Theprocessor 56 invokes the timer 62 that counts down until the expirationof the random response interval 36 of time. In this example, the timer62 begins counting down from 0.627 seconds, perhaps according to someincrement 76 that is also retrieved from the memory 60. When the randomresponse interval 36 of time expires, the processor 56 instructs theremote control interface 52 to send the response 30 to the query 28. Theresponse 30 then communicates to the remote control 20. When the remotecontrol 20 receives the response 30, the remote control 20 may thusconfigure itself to remotely control the television 32. As eachelectronic device 22 (illustrated in FIG. 1) may similarly calculate itsrespective random response interval 36 of time, the remote control 20may similarly configure itself to remotely control each electronicdevice 22.

The random response interval 36 of time may be temporary or permanent.The random response interval 36 of time may be used for every responseto queries from the remote control 20. That is, once the random responseinterval 36 of time is calculated, the electronic device 22 (e.g., thetelevision 32) may use that random response interval 36 of time for allresponses to queries. The collision avoidance mechanism 34, however, maycalculate a new random response interval 36 of time for each response toan individual query. According to exemplary embodiments, a new randomresponse interval 36 of time may be generated for each response. Whenthe same delay is always used, a collision may occur, and collisions maycontinue to occur as the two colliding devices keep trying. Thecollision avoidance mechanism 34 may, instead, assign a life to therandom response interval 36 of time, such that a new value isperiodically or randomly calculated. The collision avoidance mechanism34, in other words, may be configured to utilize the random responseinterval 36 of time on a temporary basis, perhaps according to theuser's desires and/or a manufacturer's desires.

FIGS. 4 and 5 are more schematics illustrating automatic discovery andconfiguration of electronic devices, according to more exemplaryembodiments. FIG. 4 is a timing diagram, while FIG. 5 illustrates aprocess for self-identification. As FIG. 4 illustrates, the remotecontrol 20 sends the query 28 to the electronic device 22. When thequery 28 is received, the electronic device 22 waits for the randomresponse interval 36 of time and then sends the response 30 to the query28. Once the response 30 is sent, the electronic device 22 monitors foran acknowledgement 90 to the response 30 until expiration of amonitoring interval 92 of time. The monitoring interval 92 of time isany measure or period of time in which the electronic device 22 awaitsreceipt of the acknowledgement 90, thus indicating that the response 30was received by the remote control 20. The monitoring interval 92 oftime may be any time from nanoseconds to several seconds, such as 500milliseconds. When the acknowledgement 90 is received, the electronicdevice 22 has successfully self-identified itself. FIG. 4 alsoillustrates that the monitoring interval 92 of time may be known to boththe remote control 20 and the electronic device 22. Otherwise, theremote control 20 may not know how long to monitor for the response 30.

FIG. 5 illustrates a process for self-identification, according to evenmore exemplary embodiments. The remote control 20 sends the query 28 tothe electronic device 22 (such as the television 32) (Block 100).According to exemplary embodiments, the query 28 is universallyunderstood by all the electronic devices 22 (illustrated in FIG. 1).That is, the query 28 is formatted according to an accepted standard orto an industry specification, such that the query 28 is received andprocessed by all the electronic devices 22. When the query 28 isreceived, the random response interval 36 of time is calculated (Block102). The timer 62 counts down until the expiration of the randomresponse interval 36 of time (Block 104). When the random responseinterval 36 of time expires, the electronic device 22 (e.g., the remotecontrol interface 52 illustrated in FIGS. 2 and 3) sends the response 30to the query 28 (Block 106). Once the response is sent, the electronicdevice 22 monitors for the acknowledgement 90 to the response untilexpiration of the monitoring interval 92 of time (Block 108).

When the remote control 20 receives the response 30 from the electronicdevice 22, a control application 110 stored in memory 112 of the remotecontrol 20 may send the acknowledgement 90 (Block 114). The controlapplication 110, for example, may be a set of processor-executableinstructions that cause a remote control processor 116 (e.g., “μP”),application specific integrated circuit (ASIC), or other device to sendthe acknowledgement 90. The control application 110 may instruct theremote control processor 116 to cause the transceiver circuitry(illustrated as reference numeral 26 in FIG. 1) to send theacknowledgment 90 to the television 32 (or any other electronic device22 illustrated in FIG. 1). The acknowledgement 90 may be broadcasted toall the electronic devices 22, or the acknowledgement 90 may beaddressed and destined for a single electronic device 22 (e.g., thetelevision 32). Because, for example, the television 32 self-identifieditself (using the response 30 to the query 28), the acknowledgement 90may include codes or other information that uniquely format theacknowledgement 90 to the television 32 (or to any electronic device 22for which the acknowledgement 90 is received). The acknowledgement 90,in other words, may only be formatted, understood, or decipherable bythe television 32.

FIGS. 6 and 7 are more schematics illustrating automatic configurationof electronic devices, according to more exemplary embodiments. Here theelectronic device 22 (such as the television 32) waits for theacknowledgement 90 from the remote control 20. When no acknowledgement90 is received, the electronic device 22 may resend duplicate responsesuntil the acknowledgement 90 is received or until a maximum responsetime expires. FIG. 6 is a timing diagram that illustrates thisembodiment. The remote control 20 sends the query 28 to the electronicdevice 22. When the query 28 is received, the electronic device 22 waitsfor the random response interval 36 of time and then sends the response30 to the query 28. Once the response 30 is sent, the electronic device22 monitors for the acknowledgement 90 to the response 30 untilexpiration of the monitoring interval 92 of time. When theacknowledgement 90 is not received within the monitoring interval 92 oftime, then another random response interval 36 of time is determined.When the another random response interval 36 of time has expired, thenthe response 30 to the query is resent. The electronic device 22 againmonitors for the acknowledgement 90 to the response 30 until expirationof the monitoring interval 92 of time. The collision avoidance mechanism(illustrated as reference numeral 34 in FIGS. 1-3) continues resendingthe response 30, according to each random response interval 36 of time,until either the acknowledgement 90 is received or until a maximumresponse time 120 expires. The maximum response time 120 is any measureor period of time at which the collision avoidance mechanism 34 “timesout” and the electronic device 22 ceases sending duplicate responses 30to the query 28. The maximum response time 120 may be any value, such astwo or three seconds. When the maximum response time 120 expires withouthaving received the acknowledgement 90, the electronic device 22 thusstops expecting the acknowledgment 90 from the remote control 20.Because no acknowledgement was received, the collision avoidancemechanism 34 may thus assume that self-identification failed.

FIG. 7 illustrates a more detailed process for self-identification,according to even more exemplary embodiments. When the random responseinterval 36 of time expires, the remote control 20 sends the response 30to the query 28 (Block 130). Once the response 30 is sent, the remotecontrol 20 monitors for the acknowledgement to the response 30 untilexpiration of the monitoring interval 92 of time (Block 132). When theacknowledgement 90 is not received within the monitoring interval 92 oftime, then another random response interval 36 of time is determined(Block 134). The timer 62 counts down until the expiration of theanother random response interval 36 of time (Block 136). When theanother random response interval 36 of time has expired, then theresponse 30 to the query 28 is resent (Block 138). The maximum responsetime 120 is retrieved and another, second timer is established (Block140). The second timer counts down (according to some increment) and theprocess repeats Block 132 through Block 138 until the maximum responsetime 120 expires, when the electronic device 22 ceases sending duplicateresponses to the query (Block 142). When the maximum response time 120expires without having received the acknowledgement 90, the electronicdevice 22 thus stops expecting an acknowledgment from the remote control20. Because no acknowledgement was received, the collision avoidancemechanism 34 may thus assume that self-identification failed.

FIG. 8 is a timing diagram for another process for controllingelectronic devices, according to even more exemplary embodiments. FIG. 8illustrates a slightly more complex identification process for morecomplex multimedia environments. Some users may have elaboratemultimedia entertainment systems, perhaps including multipletelevisions, multiple DVD players, and other multiple devices of thesame general type. FIG. 8, then, illustrates device-specific responseintervals 150 of time. Only electronic devices of a particular type maysend responses to queries during a device-specific response interval 150of time. That is, each type of electronic device 22 is assigned aparticular response interval of time. A first device-specific responseinterval 152 of time, for example, would be reserved for televisions.Only televisions may send responses to queries during thetelevision-specific response interval of time. DVD players must awaittheir respective DVD-specific response interval 154 of time beforesending a response. Similarly, satellite radio devices, record/albumplayers, and any other type of electronic devices must await theirrespective device-specific response intervals of time. Thesedevice-specific response intervals 150 of time help minimize thelikelihood of response collisions between similar types of electronicdevices.

As FIG. 8 illustrates, the remote control 20 sends the query 28 to theelectronic devices 22. The query 28 instructs each electronic device 22to respond according to a type of device. When the query 28 is received,each electronic device's resident collision avoidance mechanism 34obtains or retrieves its corresponding device-specific response interval150 of time. The device-specific response interval 150 of time may bereceived with the query 28 or retrieved from memory. The device-specificresponse interval 150 of time may be a window of time that is reservedfor responses by that type of device. The device-specific responseinterval 150 of time, for example, may be 100-250 milliseconds fortelevisions, 275-425 milliseconds for satellite radio devices, and450-600 milliseconds for tuner type devices. The device-specificresponse interval 150 of time may be specified by a manufacturer of theelectronic device 22. An industry consortium or governing body mayestablish the device-specific response interval 150 of time. Becausethere may only be a small number of categories or “types” of devices,the manufacturers and/or a governing body (e.g., I.E.E.E) mayestablish/manage the device-specific response interval 150 of time. Theuser of the remote control 20 may even establish the device-specificresponse interval 150 of time during a set-up procedure. As anotheralternative, exemplary embodiments may utilize a sequence of queries,wherein different types of devices are queried in sequence. The remotecontrol 28, for example, may be programmed to first query televisions,then to query DVD devices, then to query CD devices, and so on.Regardless, each type of electronic device 22 retrieves its associateddevice-specific response interval 150 of time. FIG. 8, for example,illustrates that only televisions may send responses 30 to the query 28during the television-specific response interval 152 of time. DVD-typeelectronic devices (e.g., DVD players) must await their respectiveDVD-specific response interval 154 of time before sending the response30 to the query 28. Similarly, CD-type electronic devices (e.g., CDplayers) must await their respective CD-specific response interval 156of time before sending the response 30 to the query 28.

FIG. 8 also illustrates the random response interval 36 of time. When anelectrical device's response interval 150 of time opens, or becomesavailable, the electronic device 22 may additionally wait for the randomresponse interval 36 of time before sending the response 30. Thecollision avoidance mechanism 34, however, may compare the randomresponse interval 36 of time to the device-specific response interval150 of time. Should the random response interval 36 of time be greaterthan (e.g., longer in time) than the corresponding device-specificresponse interval 150 of time, then the random response interval 36 oftime must be recalculated. The resident collision avoidance mechanism 34may prohibit the random response interval 36 of time to lie outside orbeyond the corresponding device-specific response interval 150 of time.Otherwise an electronic device 22 would be sending its response 30outside its corresponding device-specific response interval 150 of time,thus defeating the collision avoidance mechanism 34.

FIG. 9 is a schematic illustrating coordination of random delays amongstthe electronic devices 22, according to even more exemplary embodiments.Here the electronic devices 22 may share their random response intervals36 of time amongst each other. That is, each electronic device 22 maysend its individual random response interval 36 of time to every otherelectronic device 22. Because each electronic device 22 includes thecollision avoidance mechanism 34, the electronic devices 22 maycoordinate their delay policies to ensure that responses 30 do notcollide at the remote control 20. The remote control 20, as earlierexplained, queries the electronic devices 22. Before sending theresponse 30, though, each electronic device 22 calls or invokes itsresident collision avoidance mechanism 34. As the above paragraphsexplained, each electronic device's collision avoidance mechanism 34calculates its respective random response interval 36 of time.

The electronic devices 22 may then share their respective delay times.Each electronic device 22 may send its respective random responseinterval 36 of time to the other electronic devices 22. FIG. 9, forsimplicity, only illustrates the television 32 sharing its randomresponse interval 36 of time. The reader should understand, though, thatany, some, or all of the electronic devise 22 may communicate theirrespective delay times. As FIG. 9 illustrates, the television'stransceiver 54 broadcasts a delay communication 200 to the otherelectronic devices 22. The delay communication 200 includes informationdescribing the television's respective random response interval 36 oftime. The television's transceiver 54 may also receive additional delaycommunications 202 from the other electronic devise(s) 22. Eachelectronic device 22, in other words, may be informed of every otherelectronic device's random response interval 36 of time. Now that theelectronic devices 22 know each other's delay times, the electronicdevices 22 may avoid implementing similar delay times when responding toqueries from the remote control 20.

A hierarchy 224, for example, may be used when conflicts occur. When twoor more electronic devices 22 have similar random response intervals 36of time (such that responses 30 may collide at the remote control 20),at least one of those electronic devices 22 may need to calculate a newrandom response interval 36 of time. The hierarchy 224, then, may beused to determine which electronic device 22 must calculate the newrandom response interval 36 of time. When two or more electronic devices22 have similar delay times, the electronic device 22 with the lowerhierarchical value may be required to calculate the new random responseinterval 36 of time. The electronic device 22 with the greaterhierarchical value may be permitted to continue using its associatedrandom response interval 36 of time.

The hierarchy 224 may be determined by any means. The hierarchy 224, forexample, may be alphabetically established by manufacturer and/or bycomponent. When the hierarchy 224 is alphabetically arranged bymanufacturer, a BOSE® receiver may have a higher priority orhierarchical value than a ZENITH® component (BOSE® is a registeredtrademark of Bose Corporation, while ZENITH® is a registered trademarkof Zenith Electronics Corporation). When the BOSE® receiver and theZENITH® component have the same, or too similar, delay times 36, thelower hierarchical ZENITH® component may be required to calculate a newrandom response interval 36 of time. Similarly, a “CD player” may have agreater hierarchical value than a “DVD player” or a “television.” Thehierarchy 224 may even have nested values, such that a ZENITH® “CDplayer” has a greater hierarchical than a ZENITH® “television.” Thehierarchy 224 may also be established using model numbers, serialnumbers, or any other alphanumeric information which may behierarchically arranged.

The hierarchy 224, however, may be advantageously established by usage.The electronic device 22 with the most usage may have a greaterhierarchical value than a lesser-used electronic device 22. Suppose, forexample, that each electronic device's collision avoidance mechanism 34tracks or tallies hours of operation. The television's collisionavoidance mechanism 34, for example, may sum the minutes/hours in whichthe television is powered “ON.” The hierarchy 224, then, may beestablished according to these hours of usage. When the BOSE® receiverand the ZENITH® component have the same, or too similar, random responseintervals 36 of time, the electronic device 22 with the lesser amount ofusage may be required to calculate a new random response interval 36 oftime. The term “usage” may also include the number of interactions withthe remote control 20. Each electronic device's collision avoidancemechanism 34 may additionally or alternatively track, tally, or sum thenumber of queries, instructions, and/or responses received by, and/orsent to, the remote control 20. Each electronic device's collisionavoidance mechanism 34, in other words, monitors the number ofinteractions with the remote control 20. The electronic device 22 havingthe greater number of interactions may have a greater hierarchicalvalue. Any electronic device 22 having a lesser number of interactionsmay be required to calculate the new random response interval 36 oftime. As FIG. 9 illustrates, the remote control 20 may also store andexecute its own resident collision avoidance mechanism 226, and thiscollision avoidance mechanism 226 may monitor the number of interactionswith any of the electronic devices 22.

The hierarchy 224 may also be user-configured. The user may assign ahierarchical value to each electronic device 22, perhaps during a set-upor configuration procedure. While user-configuration of the hierarchy224 is possible, though, a fully automatic arbitration process ispreferred for a simpler set-up.

The electronic devices 22 may share their respective delay times by anymeans. In FIG. 9 the television's transceiver 54 wirelessly broadcaststhe delay communication 200 to the other electronic devices 22. Thedelay communication 200, however, may be unicast or addressed to eachindividual electronic device 22. The delay communication 200 may even besent over a wired connection to another electronic device 22.

FIG. 10 is a schematic further illustrating the remote control 20,according to more exemplary embodiments. Here the remote control 20 mayhave a display 300 that indicates what electronic devices (illustratedas reference numeral 22 in FIG. 1) have been discovered. The remotecontrol processor (illustrated as reference numeral 116 in FIG. 5) maycause the display 300 to visually present a unique icon 302 for eachdiscovered device 22. The user of the remote control 20 may then use akeypad 304 or other means to scroll amongst the icons 302, select adesired icon 302, and then input commands to that selected electronicdevice 22. When a desired electronic device 22 is not represented with acorresponding icon 302, the remote control 20 may have been unable to“discover” that desired electronic device. Suppose, for example, theuser wishes to control a satellite radio, but the display 300 lacks ordoes not present a corresponding satellite radio icon. Or, as FIG. 10illustrates, the display 300 may visually present a unique satelliteradio icon 306, yet the display 300 indicates that a satellite radio wasnot discovered. The user may then instruct the remote control 20 toinitiate a discovery process, in which the remote control 20 queries theelectronic devices 22 (as above explained). The user, for example, maydepress or otherwise select a “Discovery” button 308 to initiate thequery 28 to the electronic devices 22. Or the user may highlight orotherwise select the satellite radio icon 306 and initiate the discoveryprocess. The remote control 20 may automatically permanently store alldiscovered devices until the “Discovery” button 308 is again depressed.To avoid inadvertent “rediscovery,” especially in a new environment(e.g., a different room), a “lock” switch may be included. In addition,the remote control 20 may optionally enable the user to store theresults of device discoveries on a room-by-room basis, such asdiscovered devices in “the kitchen” and discovered devices in the“family room.” The remote control 20 may thus be used in various roomsin a house without the need for exercising the discovery capability eachtime the user changes rooms.

FIG. 11 depicts other possible operating environments for additionalaspects of the exemplary embodiments. FIG. 11 illustrates that thecollision avoidance mechanism 34 may alternatively or additionallyoperate within various other devices 400. FIG. 11, for example,illustrates that the collision avoidance mechanism 34 may entirely orpartially operate within a set-top box (402), a personal/digital videorecorder (PVR/DVR) 404, personal digital assistant (PDA) 406, a GlobalPositioning System (GPS) device 408, an interactive television 410, anInternet Protocol (IP) phone 412, a pager 414, a cellular/satellitephone 416, or any computer system and/or communications device utilizinga digital processor and/or a digital signal processor (DP/DSP) 418. Thedevice 400 may also include watches, radios, vehicle electronics,clocks, printers, gateways, mobile/implantable medical devices, andother apparatuses and systems. Because the architecture and operatingprinciples of the various devices 400 are well known, the hardware andsoftware componentry of the various devices 400 are not further shownand described. If, however, the reader desires more details, the readeris invited to consult the following sources: ANDREW TANENBAUM, COMPUTERNETWORKS (4^(th) edition 2003); WILLIAM STALLINGS, COMPUTER ORGANIZATIONAND ARCHITECTURE: DESIGNING FOR PERFORMANCE (7^(th) Ed., 2005); andDAVID A. PATTERSON & JOHN L. HENNESSY, COMPUTER ORGANIZATION AND DESIGN:THE HARDWARE/SOFTWARE INTERFACE (3^(rd). Edition 2004); LAWRENCE HARTEet al., GSM SUPERPHONES (1999); SIEGMUND REDL et al., GSM AND PERSONALCOMMUNICATIONS HANDBOOK (1998); and JOACHIM TISAL, GSM CELLULAR RADIOTELEPHONY (1997); the GSM Standard 2.17, formally known SubscriberIdentity Modules, Functional Characteristics (GSM 02.17 V3.2.0(1995-01))”; the GSM Standard 11.11, formally known as Specification ofthe Subscriber Identity Module—Mobile Equipment (Subscriber IdentityModule—ME) interface (GSM 11.11 V5.3.0 (1996-07))”; MICHEAL ROBIN &MICHEL POULIN, DIGITAL TELEVISION FUNDAMENTALS (2000); JERRY WHITAKERAND BLAIR BENSON, VIDEO AND TELEVISION ENGINEERING (2003); JERRYWHITAKER, DTV HANDBOOK (2001); JERRY WHITAKER, DTV: THE REVOLUTION INELECTRONIC IMAGING (1998); and EDWARD M. SCHWALB, ITV HANDBOOK:TECHNOLOGIES AND STANDARDS (2004).

FIG. 12 is a flowchart illustrating a method of discovering anelectronic device, according to even more exemplary embodiments. A queryis received at a remote control interface (Block 500). The query mayinclude information or protocols that request an electronic device'sserial number, manufacturer, model number, device type, and/or componentserial number (such as a processor serial number or wafer number). Aresponse to the query is determined (Block 502). A random responseinterval of time is determined according to a collision avoidancemechanism (Block 504). A timer is invoked that counts down until theexpiration of the random response interval of time (Block 506). When therandom response interval of time has expired, then the response to thequery is sent (Block 508).

FIG. 13 is another flowchart illustrating a method of discovering anelectronic device, according to even more exemplary embodiments. A queryis received at a remote control interface (Block 520) and a response isdetermined (Block 522). A collision avoidance mechanism calls a randomnumber generator to obtain a random number (Block 524). A randomresponse interval of time is determined by multiplying the random numberby a predetermined time (Block 526). A timer is invoked that counts downuntil the expiration of the random response interval of time (Block528). When the random response interval of time has expired, then theresponse to the query is sent (Block 530). The random response intervalof time may be broadcasted to other electronic devices, such that whenthe other electronic devices receive the random response interval oftime, the other electronic devices avoid implementing the same randomresponse interval of time when responding to queries from a remotecontrol (Block 532).

FIG. 14 is another flowchart illustrating a method of discovering anelectronic device, according to even more exemplary embodiments. A queryis received comprising a request for a manufacturer's serial numberassociated with the electronic device, the serial number distinguishingthe electronic device from other devices (Block 550). The query mayadditionally or alternatively request the electronic device'smanufacturer, model number, device type, and/or component serial number(such as a processor serial number or wafer number). A maximum responsetime 120 is determined (Block 552). A random response interval of timeis also determined (Block 554). When the random response interval oftime expires, a response to the query is sent (Block 556). Theelectronic device 22 monitors for an acknowledgement 90 to the response30 until expiration of the monitoring interval 92 of time (Block 558).When no acknowledgement is received within the monitoring interval 92 oftime, then another random response interval 36 of time is determined(Block 560). When the another random response interval 36 of time hasexpired, then the response 30 to the query 28 is again sent (Block 562).Blocks 554 through 562 repeat until the maximum response time 120expires, at which the electronic device 22 ceases sending the response30 to the query 28 (Block 564).

FIG. 15 is another flowchart illustrating a method of discovering anelectronic device, according to even more exemplary embodiments. A queryis received (Block 600). At least one device-specific response intervalof time is obtained that describes a window of time in which theelectronic device is permitted to send the response to the query (Block602). A random response interval of time is determined (Block 604). Afirst timer is invoked that counts up or down to the device-specificresponse interval of time (Block 606). When the device-specific responseinterval of time arrives, a second timer may begin counting untilexpiration of the random response interval of time (Block 608). When therandom response interval of time expires, a response to the query issent (Block 610).

Exemplary embodiments may be physically embodied on or in acomputer-readable medium. This computer-readable medium may includeCD-ROM, DVD, tape, cassette, floppy disk, memory card, andlarge-capacity disk (such as IOMEGA®, ZIP®, JAZZ®, and otherlarge-capacity memory products (IOMEGA®, ZIP®, and JAZZ® are registeredtrademarks of Iomega Corporation, 1821 W. Iomega Way, Roy, Utah 84067,801.332.1000, www.iomega.com). This computer-readable medium, or media,could be distributed to end-subscribers, licensees, and assignees. Thesetypes of computer-readable media, and other types not mention here butconsidered within the scope of the exemplary embodiments. A computerprogram product comprises processor-executable instructions fordiscovering electronic devices.

While the exemplary embodiments have been described with respect tovarious features, aspects, and embodiments, those skilled and unskilledin the art will recognize the exemplary embodiments are not so limited.Other variations, modifications, and alternative embodiments may be madewithout departing from the spirit and scope of the exemplaryembodiments.

1. A method, comprising: receiving, by an electronic device, a queryassociated with a remote control; determining, by the electronic device,a response to the query; determining, by the electronic device, acategory associated with the query; querying, by the electronic device,an electronic database for the category, the electronic databaseelectronically associating intervals of time and categories includingthe category determined by the electronic device; identifying, by theelectronic device, an interval of time of the intervals of time in theelectronic database that is electronically associated with the categorydetermined by the electronic device; and sending, by the electronicdevice, the response within the interval of time to the remote control.2. The method of claim 1, further comprising determining the responsebased on the category.
 3. The method of claim 1, further comprisingdetermining the interval of time based on a random number.
 4. The methodof claim 1, further comprising expiring the interval of time.
 5. Themethod of claim 1, further comprising invoking a timer that counts theinterval of time.
 6. The method of claim 1, further comprising receivingan acknowledgment of the response.
 7. The method of claim 1, furthercomprising monitoring for an acknowledgment of the response.
 8. Asystem, comprising: a hardware processor; and a memory device, thememory device storing code, the code when executed causing the hardwareprocessor to perform operations, the operations comprising: receiving aquery associated with a remote control; determining a response to thequery; determining a category associated with the query; querying anelectronic database for the category, the electronic databaseelectronically associating intervals of time and categories includingthe category determined by the electronic device; identifying aninterval of time of the intervals of time in the electronic databasethat is electronically associated with the category determined by theelectronic device; and sending the response within the interval of timeto the remote control.
 9. The system of claim 8, wherein the operationsfurther comprise determining the response based on the category.
 10. Thesystem of claim 8, wherein the operations further comprise determiningthe interval of time based on a random number.
 11. The system of claim8, wherein the operations further comprise expiring the interval oftime.
 12. The system of claim 8, wherein the operations further compriseinvoking a timer that counts the interval of time.
 13. The system ofclaim 8, wherein the operations further comprise receiving anacknowledgment of the response.
 14. The system of claim 8, wherein theoperations further comprise monitoring for an acknowledgment of theresponse.
 15. A memory device storing instructions that when executedcause a hardware processor to perform operations, the operationscomprising: receiving a query associated with a remote control;determining a response to the query; determining a category associatedwith the query; querying an electronic database for the category, theelectronic database electronically associating intervals of time andcategories including the category determined by the electronic device;identifying an interval of time of the intervals of time in theelectronic database that is electronically associated with the categorydetermined by the electronic device; and sending the response within theinterval of time to the remote control.
 16. The memory device of claim15, wherein the operations further comprise determining the responsebased on the category.
 17. The memory device of claim 15, wherein theoperations further comprise determining the interval of time based on arandom number.
 18. The memory device of claim 15, wherein the operationsfurther comprise expiring the interval of time.
 19. The memory device ofclaim 15, wherein the operations further comprise invoking a timer thatcounts the interval of time.
 20. The memory device of claim 15, whereinthe operations further comprise monitoring for an acknowledgment of theresponse.